home *** CD-ROM | disk | FTP | other *** search
- //-----------------------------------------------------------------------------
- // Torque Game Engine
- // Copyright (C) GarageGames.com, Inc.
- //-----------------------------------------------------------------------------
-
- //-----------------------------------------------------------------------------
-
- // Information extacted from the shape.
- //
- // Wheel Sequences
- // spring# Wheel spring motion: time 0 = wheel fully extended,
- // the hub must be displaced, but not directly animated
- // as it will be rotated in code.
- // Other Sequences
- // steering Wheel steering: time 0 = full right, 0.5 = center
- // breakLight Break light, time 0 = off, 1 = breaking
- //
- // Wheel Nodes
- // hub# Wheel hub, the hub must be in it's upper position
- // from which the springs are mounted.
- //
- // The steering and animation sequences are optional.
- // The center of the shape acts as the center of mass for the car.
-
- //-----------------------------------------------------------------------------
-
- datablock ParticleData(TireParticle)
- {
- textureName = "~/data/particles/dustParticle";
- dragCoefficient = 2.0;
- gravityCoefficient = -0.1;
- inheritedVelFactor = 0.1;
- constantAcceleration = 0.0;
- lifetimeMS = 1000;
- lifetimeVarianceMS = 0;
- colors[0] = "0.46 0.36 0.26 1.0";
- colors[1] = "0.46 0.46 0.36 0.0";
- sizes[0] = 0.50;
- sizes[1] = 1.0;
- };
-
- datablock ParticleEmitterData(TireEmitter)
- {
- ejectionPeriodMS = 10;
- periodVarianceMS = 0;
- ejectionVelocity = 1;
- velocityVariance = 1.0;
- ejectionOffset = 0.0;
- thetaMin = 5;
- thetaMax = 20;
- phiReferenceVel = 0;
- phiVariance = 360;
- overrideAdvance = false;
- particles = "TireParticle";
- };
-
-
- //----------------------------------------------------------------------------
-
- datablock WheeledVehicleTire(DefaultCarTire)
- {
- // Tires act as springs and generate lateral and longitudinal
- // forces to move the vehicle. These distortion/spring forces
- // are what convert wheel angular velocity into forces that
- // act on the rigid body.
- shapeFile = "~/data/models/vehicles/wheel.dts";
- staticFriction = 4;
- kineticFriction = 1.25;
-
- // Spring that generates lateral tire forces
- lateralForce = 18000;
- lateralDamping = 4000;
- lateralRelaxation = 1;
-
- // Spring that generates longitudinal tire forces
- longitudinalForce = 18000;
- longitudinalDamping = 4000;
- longitudinalRelaxation = 1;
- };
-
- datablock WheeledVehicleSpring(DefaultCarSpring)
- {
- // Wheel suspension properties
- length = 0.85; // Suspension travel
- force = 3000; // Spring force
- damping = 600; // Spring damping
- antiSwayForce = 3; // Lateral anti-sway force
- };
-
-
-
-
-
- //-----------------------------------------------------------------------------
-
- function WheeledVehicleData::create(%block)
- {
- %obj = new WheeledVehicle() {
- dataBlock = %block;
- mountable = true;
- };
- return(%obj);
- }
-
- //-----------------------------------------------------------------------------
-
- function WheeledVehicleData::onAdd(%this,%obj)
- {
- // Setup the car with some defaults tires & springs
- for (%i = %obj.getWheelCount() - 1; %i >= 0; %i--) {
- %obj.setWheelTire(%i,DefaultCarTire);
- %obj.setWheelSpring(%i,DefaultCarSpring);
- %obj.setWheelPowered(%i,false);
- }
-
- // Steer front tires
- %obj.setWheelSteering(0,1);
- %obj.setWheelSteering(1,1);
-
- // Only power the two rear wheels...
- %obj.setWheelPowered(2,true);
- %obj.setWheelPowered(3,true);
- }
-
- function WheeledVehicleData::onCollision(%this,%obj,%col,%vec,%speed)
- {
- // Collision with other objects, including items
- }
-